/**
 * Copyright ©2003~2019年8月13日 szkingdom
 * @author raohj
 * @date 2019年8月13日
 * @file RRSASignature.java
 * @comment : please input your comment to this file
 * @version : input version
 * @modify:
 * 		1、 2019年8月13日 由 raohj 新建文件
 */
package com.ccnu.crypt;

import java.security.*;

/**
 * @author raohj
 * @date 2019年8月13日
 * @version 
 * @comment RSA数字签名
 */
public class RSignature {
	// 加签名
	public static byte[] signatureRSA(PrivateKey privateKey, byte[] data) {
		// 实例化
		Signature sign;
		try {
			sign = Signature.getInstance("MD5withRSA");
			// 初始化
			sign.initSign(privateKey);
			// 更新
			sign.update(data);
			// 验签
			byte[] signByte = sign.sign();
			return signByte;
		} catch (NoSuchAlgorithmException | InvalidKeyException | SignatureException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	// 验签
	public static boolean verify(PublicKey pubKey, byte[] data, byte[] signData) {
		// 实例化
		Signature sign;
		try {
			sign = Signature.getInstance("MD5withRSA");
			// 初始化
			sign.initVerify(pubKey);
			// 更新
			sign.update(data);
			// 验签
			return sign.verify(signData);
		} catch (NoSuchAlgorithmException | InvalidKeyException | SignatureException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
}
